package com.weitu.permission.dataAuthority.service;

import com.weitu.base.entity.Tree;
import com.weitu.permission.dataAuthority.entity.DataAuthority;
import com.weitu.permission.role.entity.Role;

import java.util.List;
import java.util.Map;

/**
 * Created by smp on 2017/3/21.
 */
public interface DataAuthorityService {
    /**
     * 查询本部门下的所有角色
     * @param map
     * @return
     */
    List<Role> queryRoleList(Map<String,Object> map);

    /**
     * 查询本部门下的所有角色总数
     * @param map
     * @return
     */
    int queryCount(Map<String,Object> map);
    /**
     * 查询给定部门和角色对应的部门权限
     * @param map
     * @return
     */
    List<DataAuthority> queryDataAuthorityList(Map<String,Object> map);

    /**
     * 获取部门和数据权限关联部门
     * @param map
     * @param parentId
     * @return
     */
    List<Tree> getDataAuthorityDepartment(Map<String,Object> map,String parentId);

    /**
     * 插入数据
     * @param dataAuthorityList
     * @return
     */
    boolean insertDataAuthority(List<DataAuthority> dataAuthorityList);

    /**
     * 删除数据
     * @param map
     * @return
     */
    boolean deleteDataAuthority(Map<String,Object> map);

    /**
     * 更新数据
     * @param deptId
     * @param roleId
     * @param dataAuthorityList
     * @return
     */
    boolean updateDataAuthority(String deptId,String roleId,List<DataAuthority> dataAuthorityList);

    /**
     * 根据用户id和部门id查询数据权限下的部门id
     */
    List<String> selectDataDeptIdByUserIdAndDeptId(String userId,String deptId);
}
